<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <ul>
        <li>11</li>
        <li>22</li>
        <li>33</li>
    </ul>
    <script>
        /* 
            // js语言 多范式 
            //  for  ; for in ; while  ,do while   : 命令式 强调过程 ，如何做？
            //  forEach map  reduce filter every  some .. ： 声明式 强调结果 , 做什么？

            // forEach 循环 数组方法 ；
        
        */
        // 一、forEach的使用
        // var arr = ["张三","李四","王五"];

        // 第一个参数是 键值  第二个参数是 键名 第三个参数是循环的数组
        // arr.forEach(function(item,key,arr){
        //     console.log(item,key,arr);
        // })

        // var lis = document.getElementsByTagName("li");
        // // console.log(lis);
        // [...lis].forEach(function(item){
        //     // console.log(item);
        //     item.onclick = function(){
        //         console.log("点击了");
        //     }
        // })  

        // var lis = document.querySelectorAll("li");
        // // console.log(lis);
        // lis.forEach(function(item){
        //     item.onclick = function(){
        //         console.log("点击了");
        //     }
        // })


        // 二 、实现一个自己的myForEach方法


        // function myForEach(arr,fn){
        //     // forEach内部需要循环数组
        //     for(var i=0;i<arr.length;i++){
        //         fn(arr[i],i,arr);  // 调用 外部传入的函数,内部传入实参
        //     }
        // }


        // var arr = ["张三","李四","王五"];
        // myForEach(arr,function(item,key,arr){ // 通过形参接收实参的值
        //     console.log(item,key,arr);
        // })


        // 把myForEach方法添加到所有数组方法里；
        // var arr = []
        // var arr  = new Array();  // 内置构造函数 
        Array.prototype.myForEach = function(fn){
            for(var i=0;i<this.length;i++){
                fn(this[i],i,this);  // 调用 外部传入的函数,内部传入实参
            }
        }

        var arr = new Array("张三","李四","王五");
        arr.myForEach(function(item,key,arr){
            console.log(item,key,arr);
        })
        console.log([]);








    </script>
</body>
</html>